package com.ssy.lingxi.after.sale.service;

import com.ssy.lingxi.after.sale.api.model.vo.request.*;
import com.ssy.lingxi.after.sale.model.vo.request.ReplaceAddDeliveryGoodsVO;
import com.ssy.lingxi.after.sale.model.vo.request.*;
import com.ssy.lingxi.after.sale.model.vo.response.*;
import com.ssy.lingxi.common.model.dto.UserLoginCacheDTO;
import com.ssy.lingxi.common.response.PageData;
import com.ssy.lingxi.common.response.Wrapper;

/**
 * 售后换货服务接口
 * @author 伍将
 * @date 2020/9/11
 * @version 2.0.0
 */
public interface IReplaceGoodsService {

    /**
     * 消费者分页查询换货申请
     * @author 伍将
     * @date 2020/9/11
     * @param user: 
     * @param pageVO: 
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageByConsumer(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 消费者分页查询换货申请-新
     * @param user
     * @param pageVO
     * @return
     */
    Wrapper<PageData<ReplaceGoodsQueryAppVO>> pageByConsumerApp(UserLoginCacheDTO user, ReplaceGoodsPageAppVO pageVO);

    /**
     * 消费者获取换货申请详情
     * @author 伍将
     * @date 2020/9/11
     * @param user: 当前登录用户
     * @param replaceId: 换货id
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsDetailVO>
     **/
    Wrapper<ReplaceGoodsDetailVO> getDetailByConsumer(UserLoginCacheDTO user, Long replaceId);

    /**
     * App端获取换货详情
     * @author 伍将
     * @date 2021/3/23
     * @param user: 当前登录用户
     * @param replaceId: 换货id
     * @return 操作结果
     **/
    Wrapper<ReplaceGoodsDetailAppVO> getDetailByApp(UserLoginCacheDTO user, Long replaceId);

    /**
     * 消费者分页查询等待提交的换货
     * @author 伍将
     * @date 2020/9/11
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.repair.response.RepairApplyQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeSubmitByConsumer(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 保存换货申请
     * @author 伍将
     * @date 2020/9/11
     * @param user:
     * @param saveVO:
     * @return com.ssy.lingxi.common.response.Wrapper<java.lang.Long>
     **/
    Wrapper<Long> save(UserLoginCacheDTO user, ReplaceGoodsSaveVO saveVO);

    /**
     * 删除换货申请
     * @author 伍将
     * @date 2020/9/11
     * @param user:
     * @param replaceId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> delete(UserLoginCacheDTO user, Long replaceId);

    /**
     * 提交换货申请
     * @author 伍将
     * @date 2020/9/11
     * @param user:
     * @param replaceId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> submit(UserLoginCacheDTO user, Long replaceId);

    /**
     * 分页查询待信息退货发货单
     * @author 伍将
     * @date 2020/9/17
     * @param user: 
     * @param pageVO: 
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeAddReturnDeliveryGoods(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 退发货单-详情
     * @param sysUser
     * @param returnDeliveryId
     * @param isSupplier
     * @return
     */
    Wrapper<ReplaceGoodsBatchDetailVO> getReturnGoodsDeliveryOrReceiveDetail(UserLoginCacheDTO sysUser, Long returnDeliveryId, boolean isSupplier);

    /**
     * 新增退货发货单
     * @param addVO
     * @return
     */
    Wrapper<Long> addReturnDeliveryGoods(UserLoginCacheDTO user,ReplaceDeliveryGoodsAddVO addVO);

    /**
     * 删除退货发货单
     * @author 伍将
     * @date 2020/9/29
     * @param replaceId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> deleteReturnDeliveryGoods(Long replaceId);

    /**
     * 审核退货发货
     * @author 伍将
     * @date 2020/9/17
     * @param verifyVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> verifyReturnDeliveryGoods(VerifyDeliveryVO verifyVO);

    /**
     * 采购商审核退货发货单
     * @author 伍将
     * @date 2021/1/4
     * @param user: 当前操作用户
     * @param replaceId: 换货id
     * @return 统一数据模型
     **/
    Wrapper<Void> verifyReturnDeliveryGoodsByConsumer(UserLoginCacheDTO user, Long replaceId);

    /**
     * 消费者分页查询待新增物流换货申请
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeAddLogisticsByConsumer(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /***
     * 新增退货物流
     * @author 伍将
     * @date 2020/9/18
     * @param addVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> addReturnLogistics(AddLogisticsVO addVO);

    /**
     * 删除退货物流
     * @author 伍将
     * @date 2020/9/29
     * @param replaceId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> deleteReturnLogistics(Long replaceId);

    /**
     * 审核退货物流
     * @author 伍将
     * @date 2020/9/18
     * @param verifyVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> verifyReturnLogistics(VerifyLogisticsVO verifyVO);

    /**
     * 分页查询待新增退货发货申请
     * @author 伍将
     * @date 2020/9/18
     * @param user: 
     * @param pageVO: 
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeReturnDeliveryGoods(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 确认退货发货
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param deliveryId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> confirmReturnDeliveryGoods(UserLoginCacheDTO user, Long deliveryId);

    /**
     * 手工退货发货
     * @author 伍将
     * @date 2020/12/4
     * @param user:
     * @param deliveryGoodsVO:
     * @return:
     **/
    Wrapper<Void> manualReturnDeliveryGoods(UserLoginCacheDTO user, ManualDeliveryGoodsVO deliveryGoodsVO);

    /**
     * 分页查询待确认退货回单
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeConfirmReturnGoodsReceipt(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 确认退货回单
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param deliveryId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> confirmReturnGoodsReceipt(UserLoginCacheDTO user, Long deliveryId);

    /**
     * 继续退货发货
     * @author 伍将
     * @date 2020/12/3
     * @param user:
     * @param replaceId:
     * @return:
     **/
    Wrapper<Void> continueReturnDeliveryGoods(UserLoginCacheDTO user, Long replaceId);

    /**
     * 确认全部退货回单
     * @author 伍将
     * @date 2020/9/22
     * @param user:
     * @param replaceId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> confirmAllReturnGoodsReceipt(UserLoginCacheDTO user, Long replaceId);

    /**
     * 分页查询待新增换货入库单
     * @author 伍将
     * @date 2020/9/18
     * @param user: 
     * @param pageVO: 
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeAddReplaceGoodsStorage(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 审核换货入库
     * @author 伍将
     * @date 2020/9/18
     * @param verifyVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> verifyReplaceGoodsStorage(VerifyDeliveryVO verifyVO);

    /**
     * 供应商审核换货入库单
     * @author 伍将
     * @date 2021/1/4
     * @param user: 当前操作用户
     * @param replaceId: 换货的id
     * @return 统一数据模型
     **/
    Wrapper<Void> verifyReplaceGoodsStorageByConsumer(UserLoginCacheDTO user, Long replaceId);

    /**
     * 新增换货入库单feign[废弃]
     * @author 伍将
     * @date 2020/9/18
     * @param addVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> addReplaceGoodsStorage(ReplaceAddStorageVO addVO);
    /**
     * 新增换货入库单
     * @author 伍将
     * @date 2020/9/18
     * @param addVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> addReplaceGoodsStorage(UserLoginCacheDTO user,ReplaceReturnReceiveAddVO addVO);

    /**
     * 删除换货入库单
     * @author 伍将
     * @date 2020/9/29
     * @param replaceId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> deleteReplaceGoodsStorage(Long replaceId);

    /**
     * 分页查询待换货收货
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeReplaceReceiveGoods(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 确认换货收货
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param deliveryId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> confirmReplaceReceiveGoods(UserLoginCacheDTO user, Long deliveryId);

    /**
     * 确认换货收货[新，兼容普通与手工]
     * @param user
     * @param deliveryId
     * @return
     */
    Wrapper<Void> confirmManualReturnReceiveGoodsCommon(UserLoginCacheDTO user, Long deliveryId);

    /**
     * 确认手工换货收货
     * @author 伍将
     * @date 2020/12/4
     * @param user:
     * @param dataId:
     * @return:
     **/
    Wrapper<Void> confirmManualReplaceReceiveGoods(UserLoginCacheDTO user, Long dataId);

    /**
     * 分页查询待待确认售后完成
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeComplete(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 确认售后完成
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param completeVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> confirmComplete(UserLoginCacheDTO user, ReplaceConfirmCompleteVO completeVO);

    /**
     * 供应商分页查询换货申
     * @author 伍将
     * @date 2020/9/11
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageBySupplier(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 供应商获取换货申请详情
     * @author 伍将
     * @date 2020/9/11
     * @param user:
     * @param replaceId:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.after.sale.model.vo.repair.response.RepairApplyDetailVO>
     **/
    Wrapper<ReplaceGoodsDetailVO> getDetailBySupplier(UserLoginCacheDTO user, Long replaceId);

    /**
     * 供应商分页查询待提交换货
     * @author 伍将
     * @date 2020/9/11
     * @param user: 
     * @param pageVO: 
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeSubmitBySupplier(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 提交审核
     * @author 伍将
     * @date 2020/9/11
     * @param user: 
     * @param verifyVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> submitVerify(UserLoginCacheDTO user, ReplaceSubmitVerifyVO verifyVO);

    /**
     * 供应商分页查询待审核一级换货
     * @author 伍将
     * @date 2020/9/11
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeVerifyStepOne(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 一级审核
     * @author 伍将
     * @date 2020/9/16
     * @param user :
     * @param verifyVO :
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> verifyStepOne(UserLoginCacheDTO user, VerifyVO verifyVO);

    /**
     * 供应商分页查询待审核二级换货
     * @author 伍将
     * @date 2020/9/11
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeVerifyStepTwo(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 二级审核
     * @author 伍将
     * @date 2020/9/16
     * @param user:
     * @param verifyVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> verifyStepTwo(UserLoginCacheDTO user, VerifyVO verifyVO);

    /***
     * 供应商分页查询等待确认审核的换货
     * @author 伍将
     * @date 2020/9/11
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeConfirmVerify(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 确认审核
     * @author 伍将
     * @date 2020/9/11
     * @param user:
     * @param verifyVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> confirmVerify(UserLoginCacheDTO user, VerifyVO verifyVO);

    /**
     * 分页查询待新增退货入库换货申请
     * @author 伍将
     * @date 2020/9/18
     * @param user: 
     * @param pageVO: 
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeAddReturnGoodsStorage(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 新增退货入库单feign[旧]
     * @author 伍将
     * @date 2020/9/18
     * @param addVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> addReturnGoodsStorage(ReplaceAddStorageVO addVO);

    /**
     * 新增退货入库单[新]
     * @author 伍将
     * @date 2020/9/18
     * @param addVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> addReturnGoodsStorage(UserLoginCacheDTO user,ReplaceReturnReceiveAddVO addVO);

    /**
     * 审核退货入库单
     * @author 伍将
     * @date 2020/9/18
     * @param verifyVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> verifyReturnGoodsStorage(VerifyDeliveryVO verifyVO);

    /**
     * 供应商审核退货入库单
     * @author 伍将
     * @date 2021/1/4
     * @param user: 当前操作用户
     * @param replaceId: 换货id
     * @return 统一数据模型
     **/
    Wrapper<Void> verifyReturnGoodsStorageBySupplier(UserLoginCacheDTO user, Long replaceId);

    /**
     * 删除退货入库单
     * @author 伍将
     * @date 2020/12/22
     * @param replaceId: 
     * @return:
     **/
    Wrapper<Void> deleteReturnGoodsStorage(Long replaceId);

    /**
     * 分页查询待退货收货换货申请
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeReturnReceiveGoods(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 确认退货收货
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param deliveryId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> confirmReturnReceiveGoods(UserLoginCacheDTO user, Long deliveryId);

    /**
     * 确认手工退货收货
     * @author 伍将
     * @date 2020/12/4
     * @param user:
     * @param dataId:
     * @return:
     **/
    Wrapper<Void> confirmManualReturnReceiveGoods(UserLoginCacheDTO user, Long dataId);

    /**
     * 分页查询待新增换货发货单
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeAddReplaceDeliveryGoods(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 新增售后换货发货单[废弃]
     * @author 伍将
     * @date 2020/9/18
     * @param addVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Long> addReplaceDeliveryGoods(com.ssy.lingxi.after.sale.api.model.vo.request.ReplaceAddDeliveryGoodsVO addVO);
    /**
     * 新增售后换货发货单
     * @author 伍将
     * @date 2020/9/18
     * @param addVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Long> addReplaceDeliveryGoods(UserLoginCacheDTO user, ReplaceAddDeliveryGoodsVO addVO);

    /**
     * 删除售后换货发货单
     * @author 伍将
     * @date 2020/9/29
     * @param replaceId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> deleteReplaceDeliveryGoods(Long replaceId);

    /**
     * 审核换货发货
     * @author 伍将
     * @date 2020/9/18
     * @param verifyVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> verifyReplaceDeliveryGoods(VerifyDeliveryVO verifyVO);

    /**
     * 供应商审核换货发货单
     * @author 伍将
     * @date 2021/1/4
     * @param user: 当前操作用户
     * @param replaceId: 换货id
     * @return 统一数据模型
     **/
    Wrapper<Void> verifyReplaceDeliveryGoodsBySupplier(UserLoginCacheDTO user, Long replaceId);

    /**
     * 供应商分页查询待新增换货发货单
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeAddLogisticsBySupplier(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 新增换货物流
     * @author 伍将
     * @date 2020/9/18
     * @param addVO: 
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> addReplaceLogistics(AddLogisticsVO addVO);

    /**
     * 删除换货物流
     * @author 伍将
     * @date 2020/9/29
     * @param replaceId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> deleteReplaceLogistics(Long replaceId);

    /**
     * 审核换货物流
     * @author 伍将
     * @date 2020/9/18
     * @param verifyVO:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> verifyReplaceLogistics(VerifyLogisticsVO verifyVO);

    /**
     * 分页查询待换货发货
     * @author 伍将
     * @date 2020/9/18
     * @param user: 
     * @param pageVO: 
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeReplaceDeliveryGoods(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 确认换货发货
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param deliveryId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> confirmReplaceDeliveryGoods(UserLoginCacheDTO user, Long deliveryId);

    /**
     * 手工换货发货[旧，废弃]
     * @author 伍将
     * @date 2020/12/4
     * @param user:
     * @param deliveryGoodsVO:
     * @return:
     **/
    Wrapper<Void> manualReplaceDeliveryGoods(UserLoginCacheDTO user, ManualDeliveryGoodsVO deliveryGoodsVO);
    /**
     * 手工换货发货
     * @author 伍将
     * @date 2020/12/4
     * @param user:
     * @param deliveryGoodsVO:
     * @return:
     **/
    Wrapper<Void> manualReplaceDeliveryGoodsCommon(UserLoginCacheDTO user, ManualDeliveryGoodsAddVO deliveryGoodsVO);

    /**
     * 分页查询待确认换货回单
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param pageVO:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.common.response.PageData < com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsQueryVO>>
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeConfirmReplaceGoodsReceipt(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 确认换货回单
     * @author 伍将
     * @date 2020/9/18
     * @param user:
     * @param deliveryId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> confirmReplaceGoodsReceipt(UserLoginCacheDTO user, Long deliveryId);

    /**
     * 继续换货发货
     * @author 伍将
     * @date 2020/12/3
     * @param user:
     * @param replaceId:
     * @return:
     **/
    Wrapper<Void> continueReplaceDeliveryGoods(UserLoginCacheDTO user, Long replaceId);

    /**
     * 确认全部换货回单
     * @author 伍将
     * @date 2020/9/22
     * @param user:
     * @param replaceId:
     * @return com.ssy.lingxi.common.response.Wrapper
     **/
    Wrapper<Void> confirmAllReplaceGoodsReceipt(UserLoginCacheDTO user, Long replaceId);

    /**
     * 分页查询列表页面搜索条件内容
     * @author 伍将
     * @date 2020/10/17
     * @param user:
     * @return com.ssy.lingxi.common.response.Wrapper<com.ssy.lingxi.after.sale.model.vo.response.ReplaceGoodsPageItemsVO>
     **/
    Wrapper<ReplaceGoodsPageItemsVO> pageItems(UserLoginCacheDTO user);

    /**
     * 平台分页查询换货申请
     * @author 伍将
     * @date 2020/12/7
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageByPlatform(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 平台获取换货申请详情
     * @author 伍将
     * @date 2020/12/7
     * @param user:
     * @param replaceId:
     * @return:
     **/
    Wrapper<ReplaceGoodsDetailVO> getDetailByPlatform(UserLoginCacheDTO user, Long replaceId);

    /**
     * 物流服务-分页获取待新增退货物流申请单
     * @author 伍将
     * @date 2020/12/8
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<ApplyOrderQueryVO>> pageToBeAddReturnByLogistics(UserLoginCacheDTO user, ApplyOrderPageVO pageVO);

    /**
     * 物流服务-分页获取待新增换货物流申请单
     * @author 伍将
     * @date 2020/12/8
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<ApplyOrderQueryVO>> pageToBeAddReplaceByLogistics(UserLoginCacheDTO user, ApplyOrderPageVO pageVO);

    /**
     * 物流服务-获取退货申请单详情
     * @author 伍将
     * @date 2020/12/9
     * @param replaceId:
     * @return:
     **/
    Wrapper<ApplyOrderQueryVO> pageReturnDetailByLogistics(Long replaceId);

    /**
     * 物流服务-获取换货申请单详情
     * @author 伍将
     * @date 2020/12/9
     * @param replaceId:
     * @return:
     **/
    Wrapper<ApplyOrderQueryVO> pageReplaceDetailByLogistics(Long replaceId);

    /**
     * 仓库服务-分页查询待新增退货发货单
     * @author 伍将
     * @date 2020/12/22
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeAddReturnDeliveryByWarehouse(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 仓库服务-分页查询待新增退货入库单
     * @author 伍将
     * @date 2020/12/22
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeAddReturnStorageByWarehouse(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 仓库服务-分页查询待新增换货发货单
     * @author 伍将
     * @date 2020/12/22
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeAddReplaceDeliveryByWarehouse(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 仓库服务-分页查询待新增换货入库单
     * @author 伍将
     * @date 2020/12/22
     * @param user:
     * @param pageVO:
     * @return:
     **/
    Wrapper<PageData<ReplaceGoodsQueryVO>> pageToBeAddReplaceStorageByWarehouse(UserLoginCacheDTO user, ReplaceGoodsPageVO pageVO);

    /**
     * 分页查询换货申请-im
     * @param sysUser
     * @param pageVO
     * @return
     */
    Wrapper<PageData<AfterSaleGoodsIMQueryVO>> pageByIM(UserLoginCacheDTO sysUser, AfterSaleGoodsIMPageVO pageVO);

    /**
     * 中止售后
     * @param sysUser
     * @param stopVO
     * @return
     */
    Wrapper<Void> stopReturnGoods(UserLoginCacheDTO sysUser, ReplaceGoodsStopVO stopVO);
}
